home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2001 January / Game.EXE_01_2001.iso / demos / Blade of Darkness / data1.cab / Program_Executable_Files / Lib / Widgets / netwidgets.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-11-16  |  18.5 KB  |  467 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import BUIx
  5. import BVideo
  6. import Raster
  7. import BBLib
  8. import math
  9. import sys
  10. import MenuWidget
  11. import BInput
  12. import ListWidget
  13. import ScorerWidgets
  14. import NetMisc
  15. CharList = None
  16.  
  17. def ChangePlayer(n):
  18.     CharList.ChangeImage(n)
  19.  
  20.  
  21. class B_ImageListWidget(BUIx.B_RectWidget):
  22.     
  23.     def __init__(self, Parent, MenuDescr, StackMenu):
  24.         global CharList
  25.         imagelist = MenuDescr['ImageList']
  26.         self.Bitmap = { }
  27.         self.IDX = imagelist[0][0]
  28.         for i in imagelist:
  29.             bitm = BBLib.B_BitMap24()
  30.             bitm.ReadFromBMP(i[1])
  31.             self.Bitmap[i[0]] = bitm
  32.         
  33.         (self.vidw, self.vidh) = self.Bitmap[self.IDX].GetDimension()
  34.         BUIx.B_RectWidget.__init__(self, Parent, MenuDescr['Name'], self.vidw, self.vidh)
  35.         self.Selected = 0
  36.         self.Solid = 0
  37.         self.Border = 0
  38.         self.SetDrawFunc(self.Draw)
  39.         CharList = self
  40.         self.IDX = MenuDescr['GetCharType']()
  41.  
  42.     
  43.     def ChangeImage(self, name):
  44.         self.IDX = name
  45.  
  46.     
  47.     def Draw(self, x, y, time):
  48.         Raster.SetPosition(x, y)
  49.         Raster.DrawImage(self.vidw, self.vidh, 'RGB', 'Normal', self.Bitmap[self.IDX].GetData())
  50.         self.DefDraw(x, y, time)
  51.  
  52.     
  53.     def FinalRelease(self):
  54.         global CharList
  55.         CharList = None
  56.         BUIx.B_RectWidget.FinalRelease(self)
  57.  
  58.     
  59.     def AcceptsFocus(self):
  60.         return 0
  61.  
  62.  
  63.  
  64. class B_MapListWidget(BUIx.B_RectWidget, MenuWidget.B_MenuTreeItem):
  65.     
  66.     def __init__(self, Parent, MenuDescr, StackMenu):
  67.         name = MenuDescr['LeftMap']
  68.         self.LeftMap = BBLib.B_BitMap24()
  69.         self.LeftMap.ReadFromBMP(name)
  70.         (self.LSize, garbage) = self.LeftMap.GetDimension()
  71.         name = MenuDescr['RightMap']
  72.         self.RightMap = BBLib.B_BitMap24()
  73.         self.RightMap.ReadFromBMP(name)
  74.         (self.RSize, garbage) = self.RightMap.GetDimension()
  75.         name = MenuDescr['SelMap']
  76.         self.SelMap = BBLib.B_BitMap24()
  77.         self.SelMap.ReadFromBMP(name)
  78.         (self.SSize, self.vidh) = self.SelMap.GetDimension()
  79.         name = MenuDescr['MarkMap']
  80.         self.MarkMap = BBLib.B_BitMap24()
  81.         self.MarkMap.ReadFromBMP(name)
  82.         (self.SSize, self.vidh) = self.MarkMap.GetDimension()
  83.         self.vidw = self.SSize * 3 + self.LSize + self.RSize
  84.         imagelist = NetMisc.ActualizeMapsBitmaps()
  85.         self.Bitmap = []
  86.         self.IDX = 0
  87.         self.MapSetValue = MenuDescr['MapSetValue']
  88.         dta = MenuDescr['MapGetValue']()
  89.         for i in imagelist:
  90.             bitm = BBLib.B_BitMap24()
  91.             bitm.ReadFromBMP(i[0])
  92.             self.Bitmap.append([
  93.                 bitm,
  94.                 i[1],
  95.                 i[2],
  96.                 0])
  97.             for j in dta:
  98.                 pass
  99.             
  100.         
  101.         (self.MapW, self.MapH) = self.Bitmap[self.IDX][0].GetDimension()
  102.         self.MapW = (self.SSize - self.MapW) / 2
  103.         self.MapH = (self.vidh - self.MapH) / 2
  104.         BUIx.B_RectWidget.__init__(self, Parent, MenuDescr['Name'], self.vidw, self.vidh)
  105.         MenuWidget.B_MenuTreeItem.__init__(self, MenuDescr, StackMenu)
  106.         self.Selected = 0
  107.         self.Solid = 0
  108.         self.Border = 0
  109.         self.SetDrawFunc(self.Draw)
  110.  
  111.     
  112.     def Draw(self, x, y, time):
  113.         global LabelName
  114.         if self.IDX == 0:
  115.             first = len(self.Bitmap) - 1
  116.         else:
  117.             first = self.IDX - 1
  118.         if self.IDX == len(self.Bitmap) - 1:
  119.             last = 0
  120.         else:
  121.             last = self.IDX + 1
  122.         if self.Bitmap[first][3]:
  123.             Raster.SetPosition(x + self.SSize * 0 + self.LSize, y)
  124.             Raster.DrawImage(self.SSize, self.vidh, 'RGB', 'Normal', self.MarkMap.GetData())
  125.         
  126.         if self.Bitmap[self.IDX][3]:
  127.             Raster.SetPosition(x + self.SSize * 1 + self.LSize, y)
  128.             Raster.DrawImage(self.SSize, self.vidh, 'RGB', 'Normal', self.MarkMap.GetData())
  129.         
  130.         if self.Bitmap[last][3]:
  131.             Raster.SetPosition(x + self.SSize * 2 + self.LSize, y)
  132.             Raster.DrawImage(self.SSize, self.vidh, 'RGB', 'Normal', self.MarkMap.GetData())
  133.         
  134.         if self.GetHasFocus():
  135.             Raster.SetPosition(x, y + self.MapH)
  136.             Raster.DrawImage(self.LSize, self.vidh - 2 * self.MapH, 'RGB', 'Normal', self.LeftMap.GetData())
  137.             Raster.SetPosition(x + self.SSize * 3 + self.LSize, y + self.MapH)
  138.             Raster.DrawImage(self.LSize, self.vidh - 2 * self.MapH, 'RGB', 'Normal', self.RightMap.GetData())
  139.             if int(time * 5) % 2 == 0:
  140.                 Raster.SetPosition(x + self.SSize * 1 + self.LSize, y)
  141.                 Raster.DrawImage(self.SSize, self.vidh, 'RGB', 'Normal', self.SelMap.GetData())
  142.             
  143.         
  144.         Raster.SetPosition(x + self.MapW + self.SSize * 0 + self.LSize, y + self.MapH)
  145.         Raster.DrawImage(self.SSize - 2 * self.MapW, self.vidh - 2 * self.MapH, 'RGB', 'Normal', self.Bitmap[first][0].GetData())
  146.         Raster.SetPosition(x + self.MapW + self.SSize * 1 + self.LSize, y + self.MapH)
  147.         Raster.DrawImage(self.SSize - 2 * self.MapW, self.vidh - 2 * self.MapH, 'RGB', 'Normal', self.Bitmap[self.IDX][0].GetData())
  148.         Raster.SetPosition(x + self.MapW + self.SSize * 2 + self.LSize, y + self.MapH)
  149.         Raster.DrawImage(self.SSize - 2 * self.MapW, self.vidh - 2 * self.MapH, 'RGB', 'Normal', self.Bitmap[last][0].GetData())
  150.         self.DefDraw(x, y, time)
  151.         LabelName = self.Bitmap[self.IDX][1]
  152.  
  153.     
  154.     def IncMenuItem(self):
  155.         self.IDX = self.IDX + 1
  156.         if self.IDX >= len(self.Bitmap):
  157.             self.IDX = 0
  158.         
  159.  
  160.     
  161.     def DecMenuItem(self):
  162.         self.IDX = self.IDX - 1
  163.         if self.IDX < 0:
  164.             self.IDX = len(self.Bitmap) - 1
  165.         
  166.  
  167.     
  168.     def ActivateItem(self, act):
  169.         if not act:
  170.             MenuWidget.B_MenuTreeItem.ActivateItem(self, act)
  171.             return None
  172.         
  173.         self.Bitmap[self.IDX][3] = not self.Bitmap[self.IDX][3]
  174.         v = []
  175.         for i in self.Bitmap:
  176.             pass
  177.         
  178.         self.MapSetValue(v)
  179.  
  180.     
  181.     def AcceptsFocus(self):
  182.         return 1
  183.  
  184.  
  185.  
  186. def FullFillPassword(cad, char):
  187.     res = ''
  188.     for x in range(len(cad)):
  189.         res = res + char
  190.     
  191.     return res
  192.  
  193.  
  194. class B_InputBox(MenuWidget.B_MenuItemTextNoFX):
  195.     
  196.     def __init__(self, Parent, MenuDescr, StackMenu):
  197.         MenuWidget.B_MenuItemTextNoFX.__init__(self, Parent, MenuDescr, StackMenu)
  198.         mentirita = None
  199.         self.Label = MenuDescr['Name']
  200.         self.Input = MenuDescr['GetInput']()
  201.         self.MaxSize = MenuDescr['MaxSize']
  202.         self.SetInput = MenuDescr['SetInput']
  203.         self.IManager = BInput.GetInputManager()
  204.         self.ListenerName = MenuDescr['Name'] + ' Listener'
  205.         self.Listener = BInput.B_InputListener(self.ListenerName)
  206.         self.Listener.SetPythonFunc(self.ListenDevice)
  207.         self.Parent = Parent
  208.         self.xx = -1
  209.         if MenuDescr.has_key('PasswordChar'):
  210.             self.PasswordChar = MenuDescr['PasswordChar']
  211.         else:
  212.             self.PasswordChar = None
  213.         
  214.         try:
  215.             self.Locked = MenuDescr['Locked']()
  216.         except:
  217.             self.Locked = 0
  218.  
  219.  
  220.     
  221.     def Draw(self, x, y, time):
  222.         cursor = ''
  223.         if self.xx == -1:
  224.             self.xx = x
  225.             self.yy = y
  226.         
  227.         if self.GetVisible() == 0:
  228.             return None
  229.         
  230.         foc = self.GetHasFocus()
  231.         if foc:
  232.             self.SetColor(252, 247, 167)
  233.             if not (self.Locked):
  234.                 if int(time * 5) % 2 == 0:
  235.                     cursor = '>'
  236.                 
  237.             
  238.         else:
  239.             self.SetColor(207, 144, 49)
  240.         if self.PasswordChar:
  241.             self.SetText(self.Label + ' ' + FullFillPassword(self.Input, self.PasswordChar) + cursor)
  242.         else:
  243.             self.SetText(self.Label + ' ' + self.Input + cursor)
  244.         self.DefDraw(self.xx - self.MaxSize * 3, self.yy, time)
  245.  
  246.     
  247.     def SetHasFocus(self, foc):
  248.         MenuWidget.B_MenuItemTextNoFX.SetHasFocus(self, foc)
  249.         if self.Locked:
  250.             return None
  251.         
  252.         if foc == 1:
  253.             self.BeginDefineKey()
  254.         
  255.         print "Let's Write!", foc
  256.  
  257.     
  258.     def FinalRelease(self):
  259.         self.Listener = None
  260.         self.IManager = None
  261.         self.Parent = None
  262.         self.SetInput = None
  263.         MenuWidget.B_MenuItemTextNoFX.FinalRelease(self)
  264.         print 'FinalRelease'
  265.  
  266.     
  267.     def BeginDefineKey(self):
  268.         keyb = self.IManager.GetAttachedDevice('Keyboard')
  269.         keyb.AddListener(self.Listener)
  270.         self.oldInputActionsSet = self.IManager.GetInputActionsSet()
  271.         self.IManager.SetInputActionsSet('MenuRedefine')
  272.  
  273.     
  274.     def EndDefineKey(self):
  275.         self.IManager.SetInputActionsSet(self.oldInputActionsSet)
  276.         self.oldInputActionsSet = None
  277.         keyb = self.IManager.GetAttachedDevice('Keyboard')
  278.         keyb.RemoveListener(self.ListenerName)
  279.  
  280.     
  281.     def AddLetter(self, letra):
  282.         if len(self.Input) < self.MaxSize:
  283.             self.Input = self.Input + letra
  284.         
  285.  
  286.     
  287.     def ActivateItem(self, act):
  288.         if act:
  289.             self.Parent.NextFocus()
  290.         
  291.         MenuWidget.B_MenuItemTextNoFX.ActivateItem(self, act)
  292.  
  293.     
  294.     def ListenDevice(self, x, y, z):
  295.         if z == 1.0:
  296.             if x == 'Enter':
  297.                 self.EndDefineKey()
  298.             elif x == 'Down':
  299.                 self.EndDefineKey()
  300.             elif x == 'Tab':
  301.                 self.EndDefineKey()
  302.             elif x == 'Up':
  303.                 self.EndDefineKey()
  304.             elif x == 'Esc':
  305.                 self.EndDefineKey()
  306.             elif x == 'Backspace':
  307.                 largo = len(self.Input)
  308.                 if largo != 0:
  309.                     self.Input = self.Input[0:largo - 1]
  310.                 
  311.             elif x == 'Delete':
  312.                 self.Input = ''
  313.             elif len(x) == 1:
  314.                 self.AddLetter(x)
  315.             elif x == 'Decimal':
  316.                 self.AddLetter('.')
  317.             elif x == 'Period':
  318.                 self.AddLetter('.')
  319.             elif x[0:6] == 'Numpad':
  320.                 self.AddLetter(x[6])
  321.             elif x[0:6] == 'Space':
  322.                 self.AddLetter(' ')
  323.             
  324.             self.SetInput(self.Input)
  325.         
  326.  
  327.     
  328.     def __del__(self):
  329.         print 'Chau! input box'
  330.         MenuWidget.B_MenuItemTextNoFX.__del__(self)
  331.  
  332.  
  333. LaListaDeServidores = None
  334.  
  335. class B_ServerListWidget(ListWidget.B_ListWidget):
  336.     
  337.     def __init__(self, Parent, Menudesc, StackMenu, VertPos = 0):
  338.         global LaListaDeServidores
  339.         ListWidget.B_ListWidget.__init__(self, Parent, Menudesc, StackMenu, VertPos)
  340.         self.StackMenu = StackMenu
  341.         self.DownArrow.SetAlpha(1)
  342.         LaListaDeServidores = self
  343.         self.SetDrawFunc(self.Draw)
  344.  
  345.     
  346.     def Draw(self, x, y, time):
  347.         self.SetClipDraw(1)
  348.         self.DefDraw(x, y, time)
  349.  
  350.     
  351.     def __del__(self):
  352.         ListWidget.B_ListWidget.__del__(self)
  353.  
  354.     
  355.     def FinalRelease(self):
  356.         global LaListaDeServidores
  357.         LaListaDeServidores = None
  358.         self.StackMenu = None
  359.         ListWidget.B_ListWidget.FinalRelease(self)
  360.  
  361.     
  362.     def SetList(self, lista):
  363.         while self.nWidgets() > 0:
  364.             self.RemoveWidget_Idx(0)
  365.         self.nElements = 0
  366.         self.Position = 0
  367.         self.ListItems = []
  368.         self.VertPos = 0
  369.         self.ListSize = 0
  370.         self.WidgetsVPos = []
  371.         self.WidgetsHeights = []
  372.         self.Focus = None
  373.         self.MenuItems = []
  374.         for i in lista:
  375.             m_class = MenuWidget.B_MenuItemTextNoFX
  376.             
  377.             try:
  378.                 m_class = i['Kind']
  379.             except:
  380.                 0
  381.                 lista
  382.  
  383.             wSubMenu = m_class(self, i, self.StackMenu)
  384.             self.AddMenuElement(wSubMenu)
  385.         
  386.         self.SetFocus_Idx(0)
  387.         self.UpArrow = BUIx.B_TextWidget(self, 'UpArrow', chr(190), ScorerWidgets.font_server, '..\\..\\Data\\Letras menu med.bmp')
  388.         self.AddWidget(self.UpArrow, 77, 0, BUIx.B_FrameWidget.B_FR_AbsoluteLeft, BUIx.B_FrameWidget.B_FR_Left, BUIx.B_FrameWidget.B_FR_AbsoluteTop, BUIx.B_FrameWidget.B_FR_Top)
  389.         self.UpArrow.SetColor(207, 144, 49)
  390.         self.UpArrow.SetAlpha(0.5)
  391.         self.DownArrow = BUIx.B_TextWidget(self, 'DownArrow', chr(191), ScorerWidgets.font_server, '..\\..\\Data\\Letras menu med.bmp')
  392.         self.AddWidget(self.DownArrow, 77, 0, BUIx.B_FrameWidget.B_FR_AbsoluteLeft, BUIx.B_FrameWidget.B_FR_Left, BUIx.B_FrameWidget.B_FR_AbsoluteBottom, BUIx.B_FrameWidget.B_FR_Bottom)
  393.         self.DownArrow.SetColor(207, 144, 49)
  394.         self.DownArrow.SetAlpha(0.5)
  395.  
  396.  
  397.  
  398. class B_ServerLabel(MenuWidget.B_MenuItemTextNoFX):
  399.     
  400.     def __init__(self, Parent, MenuDescr, StackMenu, VertPos = 0):
  401.         MenuWidget.B_MenuItemTextNoFX.__init__(self, Parent, MenuDescr, StackMenu)
  402.         self.name = MenuDescr['Name']
  403.         self.NumPlayers = MenuDescr['NumPlayers']
  404.         self.MaxPlayers = MenuDescr['MaxPlayers']
  405.         self.Idx = MenuDescr['Idx']
  406.         self.Join = MenuDescr['Join']
  407.  
  408.     
  409.     def ActivateItem(self, act):
  410.         if act:
  411.             self.Join(self.Name, self.NumPlayers, self.MaxPlayers, self.Idx)
  412.         else:
  413.             MenuWidget.B_MenuItemTextNoFX.ActivateItem(self, act)
  414.  
  415.     
  416.     def Draw(self, x, y, time):
  417.         if self.GetVisible() == 0:
  418.             return None
  419.         
  420.         foc = self.GetHasFocus()
  421.         if foc:
  422.             self.SetColor(252, 247, 167)
  423.         else:
  424.             self.SetColor(207, 144, 49)
  425.         self.SetText(self.name)
  426.         self.DefDraw(x, y, time)
  427.         if self.MaxPlayers != 0:
  428.             self.SetText(`self.NumPlayers` + ' / ' + `self.MaxPlayers`)
  429.             self.DefDraw(x + 250, y, time)
  430.             self.SetText(self.name)
  431.         
  432.  
  433.  
  434. LabelName = ''
  435.  
  436. class B_DescriptorLabel(MenuWidget.B_MenuItemTextNoFX):
  437.     
  438.     def __init__(self, Parent, MenuDescr, StackMenu):
  439.         MenuWidget.B_MenuItemTextNoFX.__init__(self, Parent, MenuDescr, StackMenu)
  440.         self.SetDrawFunc(self.Draw)
  441.         self.LastLevelName = ''
  442.         self.Parent = Parent
  443.  
  444.     
  445.     def Draw(self, x, y, time):
  446.         if self.GetVisible() == 0:
  447.             return None
  448.         
  449.         if self.LastLevelName != LabelName:
  450.             self.SetText(LabelName)
  451.             self.Parent.RecalcLayout()
  452.             self.LastLevelName = LabelName
  453.         
  454.         foc = self.GetHasFocus()
  455.         if foc:
  456.             self.SetColor(252, 247, 167)
  457.         else:
  458.             self.SetColor(207, 144, 49)
  459.         self.SetAlpha(1.0)
  460.         self.DefDraw(x, y, time)
  461.  
  462.     
  463.     def AcceptsFocus(self):
  464.         return 0
  465.  
  466.  
  467.